package primaryAlgorithm.rotate;
/**
 * @Date 2020/03/17
 * @author 王光浩
 * @Thinking 暴力法。
 * @Analysis 时间复杂度O（n^2）,空间复杂度O（1）
 */
public class MyMethodOne {
	public void rotate(int[][] matrix) {
		//双层循环，第一层控制行数，第二层控制开始的列数
        for(int i=0;i<=matrix.length/2;i++) {
        	for(int j=i;j<matrix[0].length-i;j++) {
        		int tem=matrix[i][j];
        		swap(i,j,j,matrix[0].length-i-1,matrix);//上右
        		swap(i,j,matrix[0].length-i-1,matrix[0].length-j,matrix);//上下
        		swap(i,j,matrix[0].length-j,i,matrix); //上左
        	}
        }
    }
	//交换两个元素值
	private void swap(int x1,int y1,int x2,int y2,int[][] matrix) {
		matrix[x1][y1]=matrix[x1][y1]^matrix[x2][y2];
		matrix[x2][y2]=matrix[x1][y1]^matrix[x2][y2];
		matrix[x1][y1]=matrix[x1][y1]^matrix[x2][y2];
	}
}
